const { app, BrowserWindow, Menu } = require('electron');
const path = require('path');
const { release } = require('os');

// 禁用Windows 7 GPU加速功能
if (release().startsWith('6.1')) app.disableHardwareAcceleration();
// 设置Windows 10+通知的应用程序名称
// if (process.platform === 'win32') app.setAppUserModelId(app.getName());

if (!app.requestSingleInstanceLock()) {
  app.quit();
}

Menu.setApplicationMenu(null); // 禁止显示默认菜单
const isPackaged = app.isPackaged; // 是否是生产环境

const createWindow = () => {
  const mainWindow = new BrowserWindow({
    width: 1280,
    height: 800,
    resizable: false, // 禁止调整窗口大小
    icon: path.resolve(__dirname, '../build/favicon.ico'),
    // frame: false, // 隐藏标题栏（无边框窗口）
    // minimizable: false, // 最小化
    maximizable: false // 最大化
    // closable: false, // 关闭
  });

  // 开发环境下，打开开发者工具。
  if (!isPackaged) {
    mainWindow.webContents.openDevTools();
  }

  mainWindow.loadURL('http://localhost:6081/');
};

app.whenReady().then(() => {
  createWindow();
});

// app.quit() // 关掉所有的窗口
// app.hide() // 隐藏所有的应用窗口，不是最小化
// app.show() // 隐藏后重新显示所有的窗口，不会自动选中他们
// app.exit([整数]) // 所有的窗口会被立刻关闭，不会询问用户
// app.getAppPath() // 返回当前应用所在的文件路径
// 重写某个 name 的路径为 path，path 可以是一个文件夹或者一个文件，这个和 name 的类型有关
// app.setPath(name, path)
// app.getVersion() // 返回加载应用程序的版本
// app.getName() // 返回当前应用程序的 package.json 文件中的名称
// app.setName([应用名称]) // 重写当前应用的名字
// app.getLocale() // 返回当前应用程序的语言
// app.addRecentDocument([path]) // 在最近访问的文档列表中添加 path
// app.clearRecentDocuments() // 清除最近访问的文档列表
// app.dock.setBadge('system-web') // 设置应用在 dock 中显示的字符串
// app.dock.hide() // 隐藏应用在 dock 中的图标
// app.dock.show() // 显示应用在 dock 中的图标
// app.dock.setIcon(image) // 设置应用在 dock 中显示的图标

// ipcRenderer.send([channel], [...]) // 发送消息
// ipcRenderer.on([channel], [func]) // 接收消息
